package com.t.bricks.bussiness.controller.roleandright;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.t.bricks.bussiness.db.entity.roleandright.RoleAndRightSimpl;
import com.t.bricks.bussiness.service.roleandright.RoleAndRightService;
import com.t.bricks.model.MsgEmity;

@RestController
@Api(value="角色权限表", tags={"基本系统-角色权限表操作接口"})
@RequestMapping("/role/and/right/")
public class RoleAndRightController {

	/**
	 * 角色权限表业务实现类
	 */
	@Autowired
	private RoleAndRightService roleAndRightService;
	
	/**
	 * 批量保存角色与权限关联信息
	 * @param sRoleId
	 * @param sRightList
	 * @return
	 */
	//[start]
	@ApiOperation(value="批量保存角色与权限关联信息")
	@ApiImplicitParams({
		@ApiImplicitParam(name="sRoleId", value="角色编号", dataType="String", paramType="query", required=true),
		@ApiImplicitParam(name="sRightList", value="权限编号集合','分隔", dataType="String", paramType="query", required=false)
	})
	@ApiResponses({
		@ApiResponse(code=200, message="{\"success\": 布尔值, \"msg\": 文字提示, \"data\": 码值}"),
		@ApiResponse(code=400, message="错误的请求,请检查路径"),
		@ApiResponse(code=404, message="请求路径没有或页面跳转路径不对"),
		@ApiResponse(code=1000001, message="内部请求密钥错误"),
		@ApiResponse(code=1000002, message="您还没有登录或登录已超时,需要重新登录"),
		@ApiResponse(code=1000003, message="检查登录状态失败,请稍后重试！"),
		@ApiResponse(code=1000004, message="请求的操作不存在,请检查访问地址正确性，如大小写"),
		@ApiResponse(code=1000005, message="响应后在系统内部发生不可预知的错误"),
		@ApiResponse(code=1019000, message="1019000~1999999为拦截器调用方法错误"),
		@ApiResponse(code=8001, message="角色编号为空"),
		@ApiResponse(code=7001, message="保存操作出现异常"),
		@ApiResponse(code=7002, message="清理旧数据失败"),
		@ApiResponse(code=7003, message="保存未能得到预期影响值(预期大于等于1)"),
		@ApiResponse(code=7004, message="保存时发生异常"),
		@ApiResponse(code=7005, message="7005~8998为保存时发生的其它错误"),
		@ApiResponse(code=7999, message="保存成功")
	})
	//[end]
	@RequestMapping(method={RequestMethod.POST}, value="/save")
	public MsgEmity save(String sRoleId, String sRightList) {
		return roleAndRightService.add(sRoleId, sRightList);
	}

	/**
	 * 根据角色编号取权限信息
	 * @param sRoleId 角色编号
	 * @return
	 */
	//[start]
	@ApiOperation(value="根据角色编号取权限信息", response=RoleAndRightSimpl.class)
	@ApiImplicitParams({
		@ApiImplicitParam(name="sRoleId", value="角色编号", dataType="String", paramType="query", required=true)
	})
	@ApiResponses({
		@ApiResponse(code=200, message="{\"success\": 布尔值, \"msg\": 文字提示, \"data\": 码值|Json数据对象集合}"),
		@ApiResponse(code=400, message="错误的请求,请检查路径"),
		@ApiResponse(code=404, message="请求路径没有或页面跳转路径不对"),
		@ApiResponse(code=1000001, message="内部请求密钥错误"),
		@ApiResponse(code=1000002, message="您还没有登录或登录已超时,需要重新登录"),
		@ApiResponse(code=1000003, message="检查登录状态失败,请稍后重试！"),
		@ApiResponse(code=1000004, message="请求的操作不存在,请检查访问地址正确性，如大小写"),
		@ApiResponse(code=1000005, message="响应后在系统内部发生不可预知的错误"),
		@ApiResponse(code=1019000, message="1019000~1999999为拦截器调用方法错误"),
		@ApiResponse(code=8001, message="角色编号为空"),
		@ApiResponse(code=7001, message="数据不存在"),
		@ApiResponse(code=7002, message="查询发生异常")
	})
	//[end]
	@RequestMapping(method={RequestMethod.POST}, value="/find/roleid")
	public MsgEmity findByRoleId(String sRoleId) {
		return roleAndRightService.findByRoleId(sRoleId);
	}
	
}
